← بازگشت به فهرست
📘 فصل هشتم · شبکه در لینوکس خلاصه جامع جلسات ۷۳ تا ۷۷
📅 تاریخ: شهریور ۱۴۰۵ 👤 مدرس: محمد عابدینی 🐚 Zsh · 🐧 Debian · 📦 Red Hat
🌐 هدف فصل:

در این فصل با مفاهیم پایه شبکه، پیکربندی، عیب‌یابی و تنظیم DNS در لینوکس آشنا می‌شوید. این مبانی برای هر مدیر سیستمی که با سرورها و شبکه سروکار دارد، حیاتی است.

▍ ۱. مفاهیم پایه شبکه

هدف شبکه: انتقال داده بین کامپیوترها. این انتقال به صورت لایه‌به‌لایه انجام می‌شود. هر لایه فقط با لایه‌های بالا و پایین خود ارتباط دارد و از جزئیات لایه‌های دیگر بی‌خبر است (اصل کپسوله‌سازی و انتزاع).

• مدل OSI (هفت لایه) — مرجع نظری

مدل OSI (Open Systems Interconnection) توسط ISO ارائه شده و شامل ۷ لایه زیر است (از پایین به بالا):

لایهوظیفه اصلیپروتکل‌ها / مفاهیم
۱. فیزیکیانتقال سیگنال‌های خام (بیت) روی رسانهکابل، فیبر، امواج رادیویی، پالس‌های الکتریکی
۲. پیوند دادهانتقال قاب (Frame) بین دو گره مجاور، تشخیص خطاMAC address, Ethernet, Switch, ARP
۳. شبکهمسیریابی و ارسال بسته (Packet) بین شبکه‌های مختلفIP (IPv4, IPv6), Router, ICMP
۴. انتقالارسال مطمئن یا سریع داده بین دو نقطه انتهاییTCP (مطمئن), UDP (سریع), پورت‌ها
۵. جلسهبرقراری، مدیریت و قطع ارتباط (سشن)Socket, NetBIOS, RPC
۶. نمایشقالب‌بندی داده، رمزگذاری، فشرده‌سازیSSL/TLS, JPEG, MPEG, ASCII
۷. کاربردارتباط با برنامه‌های کاربردی و کاربر نهاییHTTP, HTTPS, SSH, FTP, SMTP, DNS, DHCP
مدل OSI یک مدل مرجع (۷ لایه) است و در آزمون‌ها معمولاً نام لایه‌ها و ترتیب آنها سؤال می‌شود.

• مدل TCP/IP (چهار لایه) — پیاده‌سازی عملی

مدل TCP/IP که مبنای اینترنت است، ۴ لایه دارد (از پایین به بالا):

🔵 مدل OSI

  • ۷ لایه (نظری)
  • آموزشی و مرجع
  • هر لایه وظیفه مشخصی دارد

🔴 مدل TCP/IP

  • ۴ لایه (عملی)
  • مبنای اینترنت
  • برخی لایه‌ها ترکیب شده‌اند
مدل OSI مرجع است، اما مدل TCP/IP عملی. در دنیای واقعی از TCP/IP استفاده می‌شود.

• کپسوله‌سازی (Encapsulation) و هدرها

در هر لایه، یک هدر (Header) به داده اضافه می‌شود که شامل اطلاعات کنترلی آن لایه است. به این فرآیند کپسوله‌سازی می‌گویند. در سمت گیرنده، هر لایه هدر مربوط به خود را برداشته و داده را به لایه بالایی تحویل می‌دهد.

# داده خالص (Application) (کاربرد) DATA # افزودن هدر انتقال (TCP/UDP) → سگمنت (انتقال) TCP Header + DATA # افزودن هدر شبکه (IP) → بسته (شبکه) IP Header + TCP Header + DATA # افزودن هدر و فوتر پیوند (MAC) → قاب (پیوند) Frame Header + IP Header + TCP Header + DATA + Frame Footer
به فرآیند افزودن هدر در هر لایه، کپسوله‌سازی گفته می‌شود.

• آدرس‌دهی IPv4 و IPv6

IPv4 = ۳۲ بیت، IPv6 = ۱۲۸ بیت. سه محدوده خصوصی: 10.0.0.0/8، 172.16.0.0/12، 192.168.0.0/16.

• پروتکل‌های لایه انتقال (TCP/UDP)

پروتکلویژگی‌هاکاربرد
TCPاتصال‌گرا، مطمئن، تأیید دریافت، کنترل ازدحامHTTP, HTTPS, SSH, FTP, SMTP
UDPبدون اتصال، سریع، بدون تأیید، بدون کنترل ازدحامDNS, DHCP, NTP, VoIP, Streaming
TCP = مطمئن و اتصال‌گرا — UDP = سریع و بدون اتصال.

• پورت‌های معروف (Well-Known Ports)

پورتپروتکلسرویس
۲۰, ۲۱TCPFTP
۲۲TCPSSH
۲۳TCPTelnet (ناامن)
۲۵TCPSMTP
۵۳TCP/UDPDNS
۸۰TCPHTTP
۱۱۰TCPPOP3
۱۲۳UDPNTP
۱۴۳TCPIMAP
۴۴۳TCPHTTPS
پورت‌های معروف: SSH=۲۲، HTTP=۸۰، HTTPS=۴۴۳، DNS=۵۳، SMTP=۲۵.

• DNS و DHCP

مراحل DHCP: Discover → Offer → Request → Acknowledgment.

▍ ۲. پیکربندی شبکه

• محل فایل‌های پیکربندی

توزیعمحل فایل
دبیان / اوبونتو / کالی/etc/network/interfaces
رد هت / الما / سنت‌اواس/etc/sysconfig/network-scripts/ifcfg-*
در دبیان از /etc/network/interfaces و در رد هت از /etc/sysconfig/network-scripts/ifcfg-* استفاده می‌شود.

• تنظیم استاتیک در دبیان

auto eth0 iface eth0 inet static address 192.168.1.77 netmask 255.255.255.0 gateway 192.168.1.254 dns-nameservers 8.8.8.8 8.8.4.4

• تنظیم استاتیک در رد هت

TYPE="Ethernet" BOOTPROTO="static" NAME="eth0" IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ONBOOT=yes

• مدیریت شبکه با nmtui و nmcli

┌──(ya3in㉿kali)-[~] └─$ nmcli device status DEVICE TYPE STATE CONNECTION eth0 ethernet connected eth0 wlan0 wifi connected MyNetwork lo loopback unmanaged --
┌──(ya3in㉿kali)-[~] └─$ sudo nmcli con mod eth0 ipv4.dns "8.8.8.8 8.8.4.4" └─$ sudo nmcli con down eth0 && sudo nmcli con up eth0
برای راه‌اندازی مجدد NetworkManager: sudo systemctl restart NetworkManager.

• ابزارهای قدیمی (منسوخ)

ifconfig، iwconfig، route جای خود را به ip، iw و nmcli داده‌اند.

▍ ۳. ابزارهای عیب‌یابی شبکه

• بررسی اتصال: ping

┌──(ya3in㉿kali)-[~] └─$ ping -c 4 google.com PING google.com (172.217.16.46) 56(84) bytes of data. 64 bytes from 172.217.16.46: icmp_seq=1 ttl=64 time=2.34 ms ...
ping -c N برای محدود کردن تعداد بسته‌ها. اگر پاسخ نیاید، اتصال یا فایروال مشکل دارد.

• ردیابی مسیر: tracepath و mtr

┌──(ya3in㉿kali)-[~] └─$ mtr ya3in.ir
mtr دقیق‌تر از tracepath است و آمار لحظه‌ای ارائه می‌دهد.

• پرس‌وجوی DNS: nslookup، host، dig

┌──(ya3in㉿kali)-[~] └─$ dig google.com ; <<>> DiG 9.18.24 <<>> google.com ;; ANSWER SECTION: google.com. 299 IN A 172.217.16.46

• نمایش اتصالات: netstat (قدیمی) و ss (مدرن)

┌──(ya3in㉿kali)-[~] └─$ ss -tulpn Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* tcp LISTEN 0 100 127.0.0.1:25 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:123 0.0.0.0:*
ss جایگزین مدرن netstat است و سریع‌تر اطلاعات را نمایش می‌دهد.

• تست پورت: nc (Netcat)

┌──(ya3in㉿kali)-[~] └─$ nc -zv google.com 80 Connection to google.com port 80 [tcp/http] succeeded!

• مانیتورینگ پهنای باند: iftop

┌──(ya3in㉿kali)-[~] └─$ sudo iftop

▍ ۴. تنظیم DNS

• روش سنتی: ویرایش /etc/resolv.conf

nameserver 8.8.8.8 nameserver 8.8.4.4 nameserver 1.1.1.1 # search isp.com (اختیاری)
⚠️ هشدار: در سیستم‌های با NetworkManager یا systemd-resolved، تغییرات /etc/resolv.conf ممکن است موقت باشند و پس از ری‌بوت یا راه‌اندازی مجدد سرویس از بین بروند.

• روش مدرن: systemd-resolved (دائمی)

گام‌های تنظیم دائمی DNS

  1. فعال‌سازی سرویس: sudo systemctl enable --now systemd-resolved
  2. ایجاد فایل پیکربندی: /etc/systemd/resolved.conf.d/dns_servers.conf
  3. محتوای فایل:
    [Resolve] DNS=8.8.8.8 8.8.4.4 1.1.1.1 Domains=~.
  4. راه‌اندازی مجدد: sudo systemctl restart systemd-resolved
  5. بررسی: resolvectl status
برای تنظیم DNS با NetworkManager: sudo nmcli con mod eth0 ipv4.dns "8.8.8.8 8.8.4.4" و سپس sudo nmcli con down eth0 && sudo nmcli con up eth0.

• مقایسه دو روش

ویژگیروش سنتی (resolv.conf)روش مدرن (systemd-resolved)
دائمی بودن❌ موقت (در بیشتر سیستم‌ها)✅ دائمی
مدیریت خودکار❌ خیر✅ بله (با systemd)
پشتیبانی از چندین رابط❌ خیر✅ بله (با resolvectl)
سادگی✅ بسیار ساده⚡ کمی پیچیده‌تر
توصیه در سیستم‌های مدرن❌ خیر✅ بله
📌 نکات طلایی برای امتحان (جمع‌بندی نهایی)
  • سه عنصر ضروری شبکه: IP، Netmask، Gateway.
  • محدوده‌های خصوصی IPv4: 10.0.0.0/8، 172.16.0.0/12، 192.168.0.0/16.
  • پورت‌های معروف: SSH=۲۲، HTTP=۸۰، HTTPS=۴۴۳، DNS=۵۳، SMTP=۲۵.
  • TCP: اتصال‌گرا و مطمئن — UDP: بدون اتصال و سریع.
  • مدل OSI (۷ لایه): فیزیکی، پیوند داده، شبکه، انتقال، جلسه، نمایش، کاربرد.
  • مدل TCP/IP (۴ لایه): پیوند، اینترنت، انتقال، کاربرد.
  • کپسوله‌سازی: افزودن هدر در هر لایه (از کاربرد به پیوند).
  • فایل‌های پیکربندی: دبیان (/etc/network/interfaces)، رد هت (/etc/sysconfig/network-scripts/ifcfg-*).
  • ابزارهای مدیریت شبکه: nmtui (متن‌محور) و nmcli (خط فرمان).
  • عیب‌یابی: ping (اتصال)، tracepath/mtr (مسیر)، dig (DNS)، ss (اتصالات)، nc (پورت)، iftop (پهنای باند).
  • تنظیم DNS: روش سنتی (/etc/resolv.conf) و روش مدرن (systemd-resolved + resolvectl).
  • مراحل DHCP: Discover → Offer → Request → Acknowledgment.
✅ تمرین عملی پیشنهادی
  • با ip addr show و nmcli device status وضعیت شبکه خود را بررسی کنید.
  • با ping -c 4 google.com اتصال اینترنت را تست کنید.
  • با tracepath ya3in.ir و mtr ya3in.ir مسیر را مشاهده کنید.
  • با dig google.com آدرس IP گوگل را پیدا کنید.
  • با ss -tulpn پورت‌های باز سیستم را ببینید.
  • با nc -zv google.com 80 پورت ۸۰ گوگل را تست کنید.
  • در یک سیستم تست، یک IP استاتیک با nmtui یا nmcli تنظیم کنید.
  • با resolvectl status DNS فعلی را بررسی و در صورت نیاز تغییر دهید.
  • فایل‌های /etc/network/interfaces یا /etc/sysconfig/network-scripts/ifcfg-* را بخوانید و ساختار آنها را تحلیل کنید.